package com.atomcorp.controlador;

import com.atomcorp.modelo.Cliente;
import com.atomcorp.servicio.ClienteServicio;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;


/**
 *
 * @author manu
 */
public class BuscarClienteControlador implements Initializable{
    
    private Cliente nuevoCliente;
    
    private ClienteServicio clienteServicio;
    
    @FXML private Button btnBuscarCliente;
    @FXML private Button btnNuevoCliente;
    @FXML TextField txtApellidos;
    @FXML private TextField txtNombres;
    @FXML TextField txtIdentificacionCliente;
    @FXML private TextField txtFecha;
    @FXML private TextField txtDireccion;
    @FXML private TextField txtTelefono;
    @FXML private CheckBox cbDiscapacidad;
    @FXML private CheckBox cbTerceraEdad;
    @FXML private CheckBox cbRuc;
    private ObservableList<Cliente> resulConsulta = FXCollections.observableArrayList();
    

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        Tooltip tooltip = new Tooltip();
        tooltip.setText("Buscar Clientes");
        btnBuscarCliente.setTooltip(tooltip);
        btnNuevoCliente.setTooltip(new Tooltip("Nuevo Cliente"));
        txtIdentificacionCliente.setText("");
        nuevoCliente = new Cliente();
        clienteServicio = new ClienteServicio();
    }
    
    public void buscarClientes(){
        if(!txtIdentificacionCliente.getText().equals("")){
            listarClientesPorCriterio("IDENTIFICACION",txtIdentificacionCliente.getText());
        }
    }
    
    public void listarClientesPorCriterio(String condicion, String valor) {
        nuevoCliente = new Cliente();
        resulConsulta = clienteServicio.obtenerClientePorCriterio(condicion, valor.toUpperCase());
        if(resulConsulta.size() > 0){
           nuevoCliente = clienteServicio.obtenerClientePorCriterio(condicion, valor.toUpperCase()).get(0);
        }        
        if(nuevoCliente != null){
            cbRuc.setSelected(nuevoCliente.getRucCedula());
            txtIdentificacionCliente.setText(nuevoCliente.getIdentificacion());
            txtApellidos.setText(nuevoCliente.getApellidos());
            txtNombres.setText(nuevoCliente.getNombres());
            txtDireccion.setText(nuevoCliente.getDireccion());
            txtTelefono.setText(nuevoCliente.getTelefono());
            cbTerceraEdad.setSelected(nuevoCliente.getTerceraEdad());
            cbDiscapacidad.setSelected(nuevoCliente.getDiscapacidad());
        }else{            
            inicializar();
        }
    }
    
    public void ingresarClientes(){
        resulConsulta = clienteServicio.obtenerClientePorCriterio("IDENTIFICACION",txtIdentificacionCliente.getText());
        if(resulConsulta.size() == 0){
            nuevoCliente = new Cliente(txtIdentificacionCliente.getText(),txtApellidos.getText(),txtNombres.getText(),cbRuc.isSelected(), 
                    txtDireccion.getText(), txtTelefono.getText(), cbDiscapacidad.isSelected(), cbTerceraEdad.isSelected(),Boolean.TRUE);
            clienteServicio.ingresarCliente(nuevoCliente);
        }else{
            nuevoCliente = new Cliente(txtIdentificacionCliente.getText(),txtApellidos.getText(),txtNombres.getText(),cbRuc.isSelected(), 
                    txtDireccion.getText(), txtTelefono.getText(), cbDiscapacidad.isSelected(), cbTerceraEdad.isSelected(),Boolean.TRUE, resulConsulta.get(0).getId());
            clienteServicio.editarCliente(nuevoCliente);
        }
    }
    
    @FXML
    protected void seleccionarCliente(ActionEvent event){
        FacturaControlador.getInstance().cerrarVentana(nuevoCliente);
    }
    
    
    public void inicializar(){
        txtIdentificacionCliente.setText("");
        txtApellidos.setText("");
        txtNombres.setText("");
        txtDireccion.setText("");
        txtTelefono.setText("");
        txtFecha.setText("");
        
        cbDiscapacidad.setSelected(false);
        cbTerceraEdad.setSelected(false);
        cbRuc.setSelected(false);
    }
    
}
